JuSeok

프로그래머스 - 상호평가

문제

학생들의 평균을 구하는데, 학생 자기 자신이 평가한 점수가 가장 높거나 가장 낮을 땐 해당 점수를 제외하고 평균을 구하는 문제.

문제 링크

문제 해결 순서

  1. x, y 좌표를 저장할 front, back 배열을 선언.
  2. 반복문을 돌며 arri번째를 front에, arri번째를 back에 저장하는데 이미 있는 값이면 해당 값을 제거하고 저장하지 않는다.
  3. 직사각형이 되려면 같은 좌표가 2개씩 있어야 한다는 점을 이용. ex) [1, 3] [1, 6] [4, 3] [4, 6] -> 1 두개, 3 두개, 6 두개, 4 두개
import Foundation

func solution(_ v: [[Int]]) -> [Int]
{   
    var front: [Int] = []
    var back: [Int] = []
    for i in v {
        if !front.contains(i[0]) {
            front.append(i[0])
        }
        else{
            front.remove(at: front.firstIndex(of: i[0])!)
        }
        if !back.contains(i[1]) {
            back.append(i[1])
        }
        else{
            back.remove(at: back.firstIndex(of: i[1])!)
        }
    }
    return front + back
}

Tags